package io.sdl.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.micrometer.common.lang.Nullable;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class SdlPatientsDTO {

	@Schema(title = "患者资料id")
	private Long patientsId;

	@Schema(title = "token")
	private String token;

	@Schema(title = "档案号")
	private String medicalNo;

	@Schema(title = "手机号")
	@NotBlank(message = "手机号不能为空")
	private String userPhone;
	/**
	 * 姓名
	 */
	@Schema(title = "姓名")
	@NotBlank(message = "患者姓名不能为空")
	private String name;
	/**
	 * 性别(0:男,1:女;2:保密)
	 */
	@Schema(title = "性别")
	private Integer gender;
	/**
	 * 年龄
	 */
	@Schema(title = "年龄")
	private Integer age;
	/**
	 * 出生日期
	 */
	@Schema(title = "出生日期")
	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
	private Date birthDate;
	/**
	 * 家长姓名
	 */
	@Schema(title = "家长姓名")
	private String parentName;
	/**
	 * 联系电话
	 */
	@Schema(title = "联系电话")
	private String phone;
	/**
	 * 身份证号
	 */
	@Schema(title = "身份证号")
	private String idCard;
	/**
	 * 通讯地址
	 */
	@Schema(title = "通讯地址")
	private String address;
	/**
	 * 家族史(0:否,1:是)
	 */
	@Schema(title = "家族史")
	private Integer familyHistory;
	/**
	 * 初次发现侧弯时间
	 */
	@Schema(title = "初次发现侧弯时间")
	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
	private Date firstScoliosisDate;
	/**
	 * 月经初潮时间(仅女性)
	 */
	@Schema(title = "月经初潮时间")
	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
	private Date menstruationDate;
	/**
	 * 特发性脊柱侧弯
	 */
	@Schema(title = "特发性脊柱侧弯")
	private String diopathicScoliosis;
	/**
	 * 先天性脊柱侧弯
	 */
	@Schema(title = "先天性脊柱侧弯")
	private String congenitalScoliosis;
	/**
	 * 其他
	 */
	@Schema(title = "其他")
	private String other;
	/**
	 * 首次穿戴支架时间
	 */
	@Schema(title = "首次穿戴支架时间")
	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
	private Date firstTimeWearing;
	/**
	 * 支架类型
	 */
	@Schema(title = "支架类型")
	private String bracketType;
	/**
	 * 每日穿戴时间(22小时;夜间;部分)
	 */
	@Schema(title = "每日穿戴时间")
	private String dailyWearingTime;
	/**
	 * Cobb角T
	 */
	@Schema(title = "Cobb角T")
	private BigDecimal cobbAngleT1;
	/**
	 * Cobb角L
	 */
	@Schema(title = "Cobb角L")
	private BigDecimal cobbAngleT2;
	/**
	 * 佩戴支具后Cobb角T
	 */
	@Schema(title = "佩戴支具后Cobb角T")
	private BigDecimal wearCobbAngleT1;
	/**
	 * 佩戴支具后Cobb角L
	 */
	@Schema(title = "佩戴支具后Cobb角L")
	private BigDecimal wearCobbAngleT2;
	/**
	 * Risser指征(0-5)
	 */
	@Schema(title = "Risser指征")
	private Integer risserSign;
	/**
	 * 柔韧度(0-僵硬;1中等;2-柔软)
	 */
	@Schema(title = "柔韧度")
	private Integer flexibility;
	/**
	 * 支具适配评估
	 */
	@Schema(title = "支具适配评估")
	private String bracketTypePg;
	/**
	 * 下肢长度(1:正常,2:左长,3:右长)
	 */
	@Schema(title = "下肢长度")
	private Integer legLength;
	/**
	 * 颈段旋转
	 */
	@Schema(title = "胸凸")
	private String protrudingNeck;
	/**
	 * 胸凸
	 */
	@Schema(title = "胸凸")
	private String chestProtrusion;
	/**
	 * 腰凸
	 */
	@Schema(title = "腰凸")
	private String protrudingWaist;
	/**
	 * 身高(cm)
	 */
	@Schema(title = "身高")
	private BigDecimal height;
	/**
	 * 体重(kg)
	 */
	@Schema(title = "体重")
	private BigDecimal weight;
	/**
	 * 坐高(cm)
	 */
	@Schema(title = "坐高")
	private BigDecimal sitHigh;
	/**
	 * 外观照片URL
	 */
//    @Schema(title = "外观照片URL")
//    private  String appearancePhoto;
	/**
	 * 背部皮肤变化照片URL
	 */
//    @Schema(title = "背部皮肤变化照片URL")
//    private  String changesOfBack;
	/**
	 * 是否有过治疗史(0:否,1:是)
	 */
	@Schema(title = "是否有过治疗史")
	private Integer previousTreatmentHistory;
	/**
	 * 支具佩戴(0:否,1:是)
	 */
	@Schema(title = "支具佩戴")
	private Integer wearingBraces;
	/**
	 * 支具制作单位
	 */
	@Schema(title = "支具制作单位")
	private String supportManufacturingUnit;
	/**
	 * 首次穿戴支具时间
	 */

	@Schema(title = "首次穿戴支具时间")
	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
	private Date wearingTimeFirst;
	/**
	 * 支具类型
	 */
	@Schema(title = "支具类型")
	private String braceType;
	/**
	 * 每日穿戴时间(22小时;夜间;部分)
	 */
	@Schema(title = "每日穿戴时间")
	private String dailyWearingTimeH;
	/**
	 * 体操训练(0:否,1:是)
	 */
	@Schema(title = "体操训练")
	private Integer gymnasticsTrain;
	/**
	 * 体操授课单位
	 */
	@Schema(title = "体操授课单位")
	private String gymnasticsTrainUnit;
	/**
	 * 体操训练内容(1:施罗德,2:色努,3:其他)
	 */
	@Schema(title = "体操训练内容")
	private Integer gymnasticsTrainContent;
	/**
	 * 每日训练时长(0-2小时;1-1小时;2-30分钟;3-30分钟以下)
	 */
	@Schema(title = "每日训练时长")
	private Integer dailyTrainingDuration;
	/**
	 * Cobb角评估(0-改善;1-维持;2加重)
	 */
	@Schema(title = "Cobb角评估")
	private Integer cobbA;
	/**
	 * 中线评估(0-改善;1-维持;2偏移加重)
	 */
	@Schema(title = "中线评估")
	private Integer midline;
	/**
	 * ATR评估(0-改善;1-维持;2加重)
	 */
	@Schema(title = "ATR评估")
	private Integer atr;
	/**
	 * 体表中线评估(0-改善;1-维持;2偏移加重)
	 */
//    @Schema(title = "体表中线评估")
//    private  Integer midlineTb;
	/**
	 * X线片URL
	 */
//    @Schema(title = "X线片URL")
//    private  String xPhoto;
	/**
	 * 体表照片URL
	 */
	@Schema(title = "体表照片URL")
	private String tbPhoto;
	/**
	 * 是否有效
	 */
	@Schema(title = "是否有效")
	private Integer isDel;
	/**
	 * 更新时间
	 */
	@Schema(title = "更新时间")
	@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	/**
	 * 更新人
	 */
	@Schema(title = "更新人")
	private Long updater;
	/**
	 * 备注
	 */
	@Schema(title = "备注")
	private String remark;

	/**
	 * 剃刀背度数
	 */
	@Schema(title = "剃刀背度数(胸)")
	private String razorBack;

	/**
	 * 剃刀背度数
	 */
	@Schema(title = "剃刀背度数(腰)")
	private String razorBackY;
	/**
	 * cobb1
	 */
	@Schema(title = "cobb1")
	private String cobb1;
	/**
	 * cobb2
	 */
	@Schema(title = "cobb2")
	private String cobb2;
	/**
	 * cobb3
	 */
	@Schema(title = "cobb3")
	private String cobb3;

	/**
	 * cobb3
	 */
	@Schema(title = "列表照片数组")
	private List<String> photos;
}
